package plantilla;

import java.util.ArrayList;
import java.util.List;

public class BotonTO implements Cloneable {

	private String nombreBoton;
	private String textoBoton;
	// private String mensajeBoton;
	// Para Font nos hacen falta 3 elementos
	private String nombreFuente;
	private String tamanoFuente;
	// enumerate
	private String estiloFuente;

	private String nombreColorFuente;
	private String nombreColorFondo;
	// enumerate
	private String textAlign;
	private String nombreIconoFichero;
	private String nombreBackGroundImageFichero;
	// enumerate
	private String imageAlign;
	private String flatStyle;
	private String nombreColorBorde;
	private String nombreColorMouseOver;
	private String nombreColorMouseDown;
	private String borderSize;
	private String filasOcupa = "1";
	private String columnasOcupa = "1";
	private List<AccionBotonTO> accionEjecutar;
	private String botonValido;
	private String posicionFila;
	private String posicionColumna;
	// Propiedades de accesibilidad
	private String accesibleName = "";
	// private String accesibleRole;
	private String accesibleDescription = "";

	private String siguienteTeclado = "";
	// private String anteriorTeclado = "";
	private String tiempoBarrido;

	// private String sonidoBoton;
	// Para las copias
	private int num = 0;

	public BotonTO() {
		Inicializar();
	}

	public BotonTO(String nombreBoton, String textoBoton,/* string mensajeBoton, */
			String nombreFuente, String tamanoFuente, String estiloFuente,
			String nombreColorFuente, String nombreColorFondo,
			String textAlign, String nombreIconoFichero,
			String nombreBackGroundImageFichero, String imageAlign,
			String flatStyle, String nombreColorBorde,
			String nombreColorMouseOver, String nombreColorMouseDown,
			String borderSize, String filasOcupa, String columnasOcupa,
			List<AccionBotonTO> accionEjecutar, String botonValido,
			String posicionFila, String posicionColumna,
			String siguienteTeclado, String tiempoBarrido,
			String accessibleName, String accesibleDescription/*
															 * , string
															 * sonidoBoton
															 */) {
		this.nombreBoton = nombreBoton;
		this.textoBoton = textoBoton;
		// this.mensajeBoton = mensajeBoton;
		this.nombreFuente = nombreFuente;
		this.tamanoFuente = tamanoFuente;
		this.estiloFuente = estiloFuente;
		this.nombreColorFuente = nombreColorFuente;
		this.nombreColorFondo = nombreColorFondo;
		this.textAlign = textAlign;
		this.nombreIconoFichero = nombreIconoFichero;
		this.nombreBackGroundImageFichero = nombreBackGroundImageFichero;
		this.imageAlign = imageAlign;
		this.flatStyle = flatStyle;
		this.nombreColorBorde = nombreColorBorde;
		this.nombreColorMouseOver = nombreColorMouseOver;
		this.nombreColorMouseDown = nombreColorMouseDown;
		this.borderSize = borderSize;
		this.filasOcupa = filasOcupa;
		this.columnasOcupa = columnasOcupa;
		this.accionEjecutar = accionEjecutar;
		this.botonValido = botonValido;
		this.posicionFila = posicionFila;
		this.posicionColumna = posicionColumna;
		this.siguienteTeclado = siguienteTeclado;
		// this.anteriorTeclado = anteriorTeclado;
		this.tiempoBarrido = tiempoBarrido;
		this.accesibleName = accessibleName;
		this.accesibleDescription = accesibleDescription;
		// this.sonidoBoton = sonidoBoton;
	}

	private void Inicializar() {
		setNombreBoton("");
		setTextoBoton("");
		// MensajeBoton = "";
		setNombreFuente("");
		setTamanoFuente("");
		setEstiloFuente("");
		setNombreColorFuente("");
		setNombreColorFondo("");
		setTextAlign("");
		setNombreIconoFichero("");
		setNombreBackGroundImageFichero("");
		setImageAlign("");
		setFlatStyle("");
		setNombreColorBorde("");
		setNombreColorMouseOver("");
		setNombreColorMouseDown("");
		setBorderSize("");
		setFilasOcupa("1");
		setColumnasOcupa("1");
		setAccionEjecutar(new ArrayList<AccionBotonTO>());
		setBotonValido("");
		setPosicionFila("1");
		setPosicionColumna("1");
		setSiguienteTeclado("");
		// AnteriorTeclado = "";
		setTiempoBarrido("");
		setAccesibleName("");
		setAccesibleDescription("");
		// SonidoBoton = "";
	}

	public String getAccesibleDescription() {
		return accesibleDescription;
	}

	public void setAccesibleDescription(String accesibleDescription) {
		this.accesibleDescription = accesibleDescription;
	}

	public String getAccesibleName() {
		return accesibleName;
	}

	public void setAccesibleName(String accesibleName) {
		this.accesibleName = accesibleName;
	}

	public List<AccionBotonTO> getAccionEjecutar() {
		return accionEjecutar;
	}

	public void setAccionEjecutar(List<AccionBotonTO> accionEjecutar) {
		this.accionEjecutar = accionEjecutar;
	}

	public String getBorderSize() {
		return borderSize;
	}

	public void setBorderSize(String borderSize) {
		this.borderSize = borderSize;
	}

	public String getBotonValido() {
		return botonValido;
	}

	public void setBotonValido(String botonValido) {
		this.botonValido = botonValido;
	}

	public String getColumnasOcupa() {
		return columnasOcupa;
	}

	public void setColumnasOcupa(String columnasOcupa) {
		this.columnasOcupa = columnasOcupa;
	}

	public String getEstiloFuente() {
		return estiloFuente;
	}

	public void setEstiloFuente(String estiloFuente) {
		this.estiloFuente = estiloFuente;
	}

	public String getFilasOcupa() {
		return filasOcupa;
	}

	public void setFilasOcupa(String filasOcupa) {
		this.filasOcupa = filasOcupa;
	}

	public String getFlatStyle() {
		return flatStyle;
	}

	public void setFlatStyle(String flatStyle) {
		this.flatStyle = flatStyle;
	}

	public String getImageAlign() {
		return imageAlign;
	}

	public void setImageAlign(String imageAlign) {
		this.imageAlign = imageAlign;
	}

	public String getNombreBackGroundImageFichero() {
		return nombreBackGroundImageFichero;
	}

	public void setNombreBackGroundImageFichero(
			String nombreBackGroundImageFichero) {
		this.nombreBackGroundImageFichero = nombreBackGroundImageFichero;
	}

	public String getNombreBoton() {
		return nombreBoton;
	}

	public void setNombreBoton(String nombreBoton) {
		this.nombreBoton = nombreBoton;
	}

	public String getNombreColorBorde() {
		return nombreColorBorde;
	}

	public void setNombreColorBorde(String nombreColorBorde) {
		this.nombreColorBorde = nombreColorBorde;
	}

	public String getNombreColorFondo() {
		return nombreColorFondo;
	}

	public void setNombreColorFondo(String nombreColorFondo) {
		this.nombreColorFondo = nombreColorFondo;
	}

	public String getNombreColorFuente() {
		return nombreColorFuente;
	}

	public void setNombreColorFuente(String nombreColorFuente) {
		this.nombreColorFuente = nombreColorFuente;
	}

	public String getNombreColorMouseDown() {
		return nombreColorMouseDown;
	}

	public void setNombreColorMouseDown(String nombreColorMouseDown) {
		this.nombreColorMouseDown = nombreColorMouseDown;
	}

	public String getNombreColorMouseOver() {
		return nombreColorMouseOver;
	}

	public void setNombreColorMouseOver(String nombreColorMouseOver) {
		this.nombreColorMouseOver = nombreColorMouseOver;
	}

	public String getNombreFuente() {
		return nombreFuente;
	}

	public void setNombreFuente(String nombreFuente) {
		this.nombreFuente = nombreFuente;
	}

	public String getNombreIconoFichero() {
		return nombreIconoFichero;
	}

	public void setNombreIconoFichero(String nombreIconoFichero) {
		this.nombreIconoFichero = nombreIconoFichero;
	}

	public int getNum() {
		return num;
	}

	public void setNum(int num) {
		this.num = num;
	}

	public String getPosicionColumna() {
		return posicionColumna;
	}

	public void setPosicionColumna(String posicionColumna) {
		this.posicionColumna = posicionColumna;
	}

	public String getPosicionFila() {
		return posicionFila;
	}

	public void setPosicionFila(String posicionFila) {
		this.posicionFila = posicionFila;
	}

	public String getSiguienteTeclado() {
		return siguienteTeclado;
	}

	public void setSiguienteTeclado(String siguienteTeclado) {
		this.siguienteTeclado = siguienteTeclado;
	}

	public String getTamanoFuente() {
		return tamanoFuente;
	}

	public void setTamanoFuente(String tamanoFuente) {
		this.tamanoFuente = tamanoFuente;
	}

	public String getTextAlign() {
		return textAlign;
	}

	public void setTextAlign(String textAlign) {
		this.textAlign = textAlign;
	}

	public String getTextoBoton() {
		return textoBoton;
	}

	public void setTextoBoton(String textoBoton) {
		this.textoBoton = textoBoton;
	}

	public String getTiempoBarrido() {
		return tiempoBarrido;
	}

	public void setTiempoBarrido(String tiempoBarrido) {
		this.tiempoBarrido = tiempoBarrido;
	}

	public Object Clone() {
		
		 List<AccionBotonTO> clonAccionBotonTO = new ArrayList<AccionBotonTO>();
		 BotonTO boton = new BotonTO();
		 boton.setNombreBoton(this.nombreBoton);
		 boton.setTextoBoton(this.textoBoton);
		 boton.setNombreFuente(this.nombreFuente);
		 boton.setTamanoFuente(this.tamanoFuente);
		 boton.setEstiloFuente(this.estiloFuente);
		 boton.setNombreColorFondo(this.nombreColorFondo);
		 boton.setNombreColorFuente(this.nombreColorFuente);
		 boton.setTextAlign(this.textAlign);
		 boton.setNombreIconoFichero(this.nombreIconoFichero);
		 boton.setNombreBackGroundImageFichero(this.nombreBackGroundImageFichero);
		 boton.setImageAlign(this.imageAlign);
		 boton.setFlatStyle(this.flatStyle);
		 boton.setNombreColorBorde(this.nombreColorBorde);
		 boton.setNombreColorMouseOver(this.nombreColorMouseOver);
		 boton.setNombreColorMouseDown(this.nombreColorMouseDown);
		 boton.setBorderSize(this.borderSize);
		 boton.setFilasOcupa(this.filasOcupa);
		 boton.setColumnasOcupa(this.columnasOcupa);
		 boton.setBotonValido(this.botonValido);
		 boton.setPosicionFila(this.posicionFila);
		 boton.setPosicionColumna(this.posicionColumna);
		 boton.setSiguienteTeclado(this.siguienteTeclado);
		 boton.setTiempoBarrido(this.tiempoBarrido);
		 boton.setAccesibleName(this.accesibleName);
		 boton.setAccesibleDescription(this.accesibleDescription);
			
			for(int i=0; i<this.accionEjecutar.size();i++){
				
				AccionBotonTO accion = (AccionBotonTO)this.accionEjecutar.get(i).Clone();
				clonAccionBotonTO.add(accion);
				
			}
		boton.setAccionEjecutar(clonAccionBotonTO);

		return boton;
	}

}
